home *** CD-ROM | disk | FTP | other *** search
/ Aminet 2 / Aminet AMIGA CDROM (1994)(Walnut Creek)[Feb 1994][W.O. 44790-1].iso / Aminet / dev / misc / toolbox.lha / Toolbox / lib / rex / Source.mod < prev   
Encoding:
Text File  |  1993-03-11  |  1.0 KB  |  36 lines

  1. (* $Id: Source.mi,v 1.5 1992/08/07 15:29:41 grosch rel $ *)
  2.  
  3. $@ IMPLEMENTATION MODULE $Source;
  4.  
  5. FROM SYSTEM    IMPORT ADDRESS;
  6. FROM System    IMPORT tFile, OpenInput, Read, Close;
  7.  
  8. PROCEDURE BeginSource (FileName: ARRAY OF CHAR): tFile;
  9.    BEGIN
  10.       RETURN OpenInput (FileName);
  11.    END BeginSource;
  12.  
  13. PROCEDURE GetLine (File: tFile; Buffer: ADDRESS; Size: CARDINAL): INTEGER;
  14.    CONST IgnoreChar = ' ';
  15.    VAR n    : INTEGER;
  16.    VAR BufferPtr: POINTER TO ARRAY [0..30000] OF CHAR;
  17.    BEGIN
  18.    (* # ifdef Dialog
  19.       n := Read (File, Buffer, Size);
  20.       (* Add dummy after newline character in order to supply a lookahead for rex. *)
  21.       (* This way newline tokens are recognized without typing an extra line.      *)
  22.       BufferPtr := Buffer;
  23.       IF (n > 0) AND (BufferPtr^[n - 1] = 012C) THEN BufferPtr^[n] := IgnoreChar; INC (n); END;
  24.       RETURN n;
  25.       # else *)
  26.       RETURN Read (File, Buffer, Size);
  27.    (* # endif *)
  28.    END GetLine;
  29.  
  30. PROCEDURE CloseSource (File: tFile);
  31.    BEGIN
  32.       Close (File);
  33.    END CloseSource;
  34.  
  35. $@ END $Source.
  36.